package com.aly.game.exe2lua.enums;

import com.aly.game.exe2lua.builder.BaseExportBuilder;
import com.aly.game.exe2lua.funcs.Props;

import java.util.function.Consumer;
import java.util.function.Function;

public interface ExportConfig {
    static void forEach(Consumer<ExportConfig> consumer) {
        for (ExportConfigImpl type : ExportConfigImpl.values()) {
            if (type.isEnable()) {
                consumer.accept(type);
            }
        }
    }

    static void init(Props props) {
        ExportConfigImpl.init(props);
    }

    char[] getHeadFix();

    String getSavePath();

    default String getEncoding() {
        return "UTF-8";
    }

    boolean isWriteBom();

    BaseExportBuilder getBuilder();

    String getFileFix();

    String getFileHeader();
}
